/* Linus H, 3B, pjav1409 */
package pjav1409.oop.k2_8;

import java.awt.*;
import javax.swing.*;
import java.util.*;
import java.awt.event.*;

/**
 * KlockVisaren skapar ett fönster med en klocka där den nuvarande tiden visas
 * samt uppdateras 1ggn/sek
 * @author Linus
 */
public class KlockVisare extends JFrame implements ActionListener {

    /**
     * Mainmetod, anropas när programmet startas. Skapar ett KlockVisare-objekt
     * @param arg
     */
    public static void main (String[] arg){
        KlockVisare kv = new KlockVisare();
    }

    //Klassvariabler
    private Tidpunkt tp = new Tidpunkt();
    JLabel l;

    /**
     * Konstruktor, anropas automatiskt när man skapar ett objekt utav klassen.
     */
    public KlockVisare(){
        javax.swing.Timer tim = new javax.swing.Timer(1000, this);
        tim.start();

        //Ställ in tiden som är då programmet startas
        Calendar c = Calendar.getInstance();
        this.tp.sätt(
                c.get(Calendar.HOUR_OF_DAY),
                c.get(Calendar.MINUTE),
                c.get(Calendar.SECOND));

        //Skapa en JLabel och lägg till den i JFramen
        this.l = new JLabel(tp.toString(), JLabel.CENTER);
        this.add(l);

        this.l.setOpaque(true);                                 //Gör bakgrunden ogenomskinlig
        this.l.setBackground(Color.black);                      //bakgrund = svart
        this.l.setForeground(Color.white);                      //text = vit
        this.l.setFont(new Font("SansSerif", Font.BOLD, 24));   //Ställ in font

        this.setSize(200, 75);                                  //Ställ in hur stort fönstret skall vara
        this.setVisible(true);                                  //Gör fönstret synligt
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


    }


    public void actionPerformed(ActionEvent e) {
        //Kör en gång i sekunden när Timer-objektet kör ett event (tror jag)
        this.tp.ticka();

        //Uppdatera texten i fönstret
        this.l.setText(this.tp.toString());
    }
}
